﻿using System;
using System.Collections;
using System.Collections.Generic;

using AUV5.Model;

namespace AUV5.DAL.Interface
{
    /// <summary>
    /// 功能：     OrderInfo 的业务接口，定义业务功能
    /// 作者：     lwl
    /// 日期：     2011/10/14
    /// 修改日期： 
    /// 修改人：
    /// 修改内容：
    /// </summary>
    public interface IOrderInfoDao
    {
        /// <summary>
        /// 得到最大行数
        /// </summary>
        /// <returns></returns>
        int GetMaxCounts();

        /// <summary>
        /// 得到列表
        /// </summary>
        /// <returns></returns>
        System.Collections.Generic.IList<OrderInfo> GetList();

        /// <summary>
        /// 通过不同参数得到列表
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        System.Collections.Generic.IList<OrderInfo> GetListByParameters(object objParameters);

        /// <summary>
        /// 得到明细
        /// </summary>
        /// <param name="OrderID"></param>
        /// <returns></returns>
        OrderInfo GetDetail(System.String orderid);

        /// <summary>
        /// 新建
        /// </summary>
        object Add(OrderInfo orderinfo);

        /// <summary>
        /// 修改
        /// </summary>
        int Update(OrderInfo orderinfo);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="OrderID"></param>
        int Delete(System.String orderid);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="orderinfo"></param>
        int Delete(OrderInfo orderinfo);


        /// <summary>
        /// 得到订单列表(分页)
        /// 创建人：Wilson
        /// 创建时间：2011-10-30
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        IList<OrderInfo> GetOrderListPage(object objParameters);

        /// <summary>
        /// 通地订单号得到订单详情
        /// 创建人：Wilson
        /// 创建时间：2011-11-8
        /// </summary>
        /// <param name="orderCode"></param>
        /// <returns></returns>
        OrderInfo GetOrderInfoByOrderCode(string orderCode);

        /// <summary>
        /// 通过订单号得到订单个数
        /// 创建人：Wilson
        /// 创建时间：2011-11-8
        /// </summary>
        /// <param name="orderCode"></param>
        /// <returns></returns>
        int GetOrderInfoCount(string orderCode);

        /// <summary>
        /// 通过订单号更新订单
        /// 创建人：Wilson
        /// 创建时间：2011-11-25
        /// </summary>
        /// <param name="orderCode"></param>
        /// <returns></returns>
        int UpdateOrderInfoByOrderCode(OrderInfo orderinfo);

        /// <summary>
        /// 通过用户ID得到用户收入
        /// 创建人：Wilson
        /// 创建时间：2011-11-25
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        decimal GetIncomeByUserId(object objParameters);

        /// <summary>
        /// 通过用户ID得到用户支出
        /// 创建人：Wilson
        /// 创建时间：2011-11-25
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        decimal GetCostByUserId(object objParameters);

        /// <summary>
        /// 通过用户ID得到用户未付款
        /// 创建人：Wilson
        /// 创建时间：2011-11-25
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        decimal GetNotPaymentByUserId(object objParameters);

        /// <summary>
        /// 得到强制关闭订单的钱数
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        decimal GetForceOrderByParameters(object objParameters);

        /// <summary>
        /// 通过条件得到买/卖成功的订单数据
        /// 创建人：Wilson
        /// 创建时间：2011-11-25
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        int GetCompletedByParameters(object objParameters);

        /// <summary>
        /// 通过条件得到订单数
        /// 创建人：Wilson
        /// 创建时间：2011-11-27
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        int GetOrderInfoCountByParameters(object objParameters);

        /// <summary>
        /// 当前订单之前的订单结束所需要的天数
        /// 创建人：Wilson
        /// 创建时间：2011-12-1
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        int GetEndTimeByParameters(object objParameters);

        /// <summary>
        /// 通过服务ID和订单状态得到订单集合
        /// 创建人：Wilson
        /// 创建时间：2011-12-26
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        IList<OrderInfo> GetOrderInfoByServiceIdAndStatusId(object objParameters);

        /// <summary>
        /// 通地条件得到关闭订单应退回的价格
        /// 创建人：Wilson
        /// 创建时间：2011-12-28
        /// </summary>
        /// <param name="objParameters"></param>
        /// <returns></returns>
        decimal GetClosedPayment(object objParameters);
      
    }
}
